Micron Document
🎖️GitЯра🎖️

Node / meshtastic / Meshtastic-Android / files / androidApp / src / fdroid / kotlin / org / meshtastic / app / map / MapViewExtensions.kt

Displaying Raw • Download

androidApp/src/fdroid/kotlin/org/meshtastic/app/map/MapViewExtensions.kt 9d416855dd1d2074b5dbb5ad40e7e954246afcdf (9d416855) Text, 5.38 KB

T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.app.map

Tff7b72import T7ee787android.graphics.Color
Tff7b72import T7ee787android.graphics.DashPathEffect
Tff7b72import T7ee787android.graphics.Paint
Tff7b72import T7ee787android.graphics.Typeface
Tff7b72import T7ee787androidx.compose.ui.unit.Density
Tff7b72import T7ee787androidx.compose.ui.unit.dp
Tff7b72import T7ee787androidx.compose.ui.unit.sp
Tff7b72import T7ee787androidx.core.content.ContextCompat
Tff7b72import T7ee787org.meshtastic.app.R
Tff7b72import T7ee787org.meshtastic.proto.Position
Tff7b72import T7ee787org.osmdroid.util.GeoPoint
Tff7b72import T7ee787org.osmdroid.views.MapView
Tff7b72import T7ee787org.osmdroid.views.overlay.CopyrightOverlay
Tff7b72import T7ee787org.osmdroid.views.overlay.Marker
Tff7b72import T7ee787org.osmdroid.views.overlay.Polyline
Tff7b72import T7ee787org.osmdroid.views.overlay.ScaleBarOverlay
Tff7b72import T7ee787org.osmdroid.views.overlay.advancedpolyline.MonochromaticPaintList
Tff7b72import T7ee787org.osmdroid.views.overlay.gridlines.LatLonGridlineOverlay2

T8b949e/** Adds copyright to map depending on what source is showing */
Tff7b72fun Te6edf3MapViewTb4b4b4.Td2a8ffaddCopyrightTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3overlaysTb4b4b4.Te6edf3none Tb4b4b4{ Tffa657it Tff7b72is Te6edf3CopyrightOverlay Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3copyrightNoticeTb4b4b4: Tffa657String Tff7b72= Te6edf3tileProviderTb4b4b4.Te6edf3tileSourceTb4b4b4.Te6edf3copyrightNotice Tff7b72?: Tff7b72return
Tff7b72val Te6edf3copyrightOverlay Tff7b72= Te6edf3CopyrightOverlayTb4b4b4(Te6edf3contextTb4b4b4)
Te6edf3copyrightOverlayTb4b4b4.Te6edf3setCopyrightNoticeTb4b4b4(Te6edf3copyrightNoticeTb4b4b4)
Te6edf3overlaysTb4b4b4.Te6edf3addTb4b4b4(Te6edf3copyrightOverlayTb4b4b4)
Tb4b4b4}
Tb4b4b4}

T8b949e/**
* Create LatLong Grid line overlay
*
* @param enabled: turn on/off gridlines
*/
Tff7b72fun Te6edf3MapViewTb4b4b4.Td2a8ffcreateLatLongGridTb4b4b4(Te6edf3enabledTb4b4b4: Tffa657BooleanTb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3latLongGridOverlay Tff7b72= Te6edf3LatLonGridlineOverlay2Tb4b4b4(Tb4b4b4)
Te6edf3latLongGridOverlayTb4b4b4.Te6edf3isEnabled Tff7b72= Te6edf3enabled
Tff7b72if Tb4b4b4(Te6edf3latLongGridOverlayTb4b4b4.Te6edf3isEnabledTb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3textPaint Tff7b72=
Te6edf3PaintTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3apply Tb4b4b4{
Te6edf3textSize Tff7b72= T79c0ff4T79c0ff0f
Te6edf3color Tff7b72= Te6edf3ColorTb4b4b4.Te6edf3GRAY
Te6edf3isAntiAlias Tff7b72= Tff7b72true
Te6edf3isFakeBoldText Tff7b72= Tff7b72true
Te6edf3textAlign Tff7b72= Te6edf3PaintTb4b4b4.Te6edf3AlignTb4b4b4.Te6edf3CENTER
Tb4b4b4}
Te6edf3latLongGridOverlayTb4b4b4.Te6edf3textPaint Tff7b72= Te6edf3textPaint
Te6edf3latLongGridOverlayTb4b4b4.Te6edf3setBackgroundColorTb4b4b4(Te6edf3ColorTb4b4b4.Te6edf3TRANSPARENTTb4b4b4)
Te6edf3latLongGridOverlayTb4b4b4.Te6edf3setLineWidthTb4b4b4(T79c0ff3.0fTb4b4b4)
Te6edf3latLongGridOverlayTb4b4b4.Te6edf3setLineColorTb4b4b4(Te6edf3ColorTb4b4b4.Te6edf3GRAYTb4b4b4)
Te6edf3overlaysTb4b4b4.Te6edf3addTb4b4b4(Te6edf3latLongGridOverlayTb4b4b4)
Tb4b4b4}
Tb4b4b4}

Tff7b72fun Te6edf3MapViewTb4b4b4.Td2a8ffaddScaleBarOverlayTb4b4b4(Te6edf3densityTb4b4b4: Te6edf3DensityTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3overlaysTb4b4b4.Te6edf3none Tb4b4b4{ Tffa657it Tff7b72is Te6edf3ScaleBarOverlay Tb4b4b4}Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3scaleBarOverlay Tff7b72=
Te6edf3ScaleBarOverlayTb4b4b4(Tff7b72thisTb4b4b4)Tb4b4b4.Te6edf3apply Tb4b4b4{
Te6edf3setAlignBottomTb4b4b4(Tff7b72trueTb4b4b4)
Te6edf3withTb4b4b4(Te6edf3densityTb4b4b4) Tb4b4b4{
Te6edf3setScaleBarOffsetTb4b4b4(T79c0ff1T79c0ff5.Te6edf3dpTb4b4b4.Te6edf3toPxTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3toIntTb4b4b4(Tb4b4b4)Tb4b4b4, T79c0ff4T79c0ff0.Te6edf3dpTb4b4b4.Te6edf3toPxTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3toIntTb4b4b4(Tb4b4b4)Tb4b4b4)
Te6edf3setTextSizeTb4b4b4(T79c0ff1T79c0ff2.Te6edf3spTb4b4b4.Te6edf3toPxTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Te6edf3textPaintTb4b4b4.Te6edf3apply Tb4b4b4{
Te6edf3isAntiAlias Tff7b72= Tff7b72true
Te6edf3typeface Tff7b72= Te6edf3TypefaceTb4b4b4.Te6edf3DEFAULT_BOLD
Tb4b4b4}
Tb4b4b4}
Te6edf3overlaysTb4b4b4.Te6edf3addTb4b4b4(Te6edf3scaleBarOverlayTb4b4b4)
Tb4b4b4}
Tb4b4b4}

Tff7b72fun Te6edf3MapViewTb4b4b4.Td2a8ffaddPolylineTb4b4b4(Te6edf3densityTb4b4b4: Te6edf3DensityTb4b4b4, Te6edf3geoPointsTb4b4b4: Te6edf3ListTff7b72<Te6edf3GeoPointTff7b72>Tb4b4b4, Te6edf3onClickTb4b4b4: Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4)Tb4b4b4: Te6edf3Polyline Tb4b4b4{
Tff7b72val Te6edf3polyline Tff7b72=
Te6edf3PolylineTb4b4b4(Tff7b72thisTb4b4b4)Tb4b4b4.Te6edf3apply Tb4b4b4{
Tff7b72val Te6edf3borderPaint Tff7b72=
Te6edf3PaintTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3apply Tb4b4b4{
Te6edf3color Tff7b72= Te6edf3ColorTb4b4b4.Te6edf3BLACK
Te6edf3isAntiAlias Tff7b72= Tff7b72true
Te6edf3strokeWidth Tff7b72= Te6edf3withTb4b4b4(Te6edf3densityTb4b4b4) Tb4b4b4{ T79c0ff1T79c0ff0.Te6edf3dpTb4b4b4.Te6edf3toPxTb4b4b4(Tb4b4b4) Tb4b4b4}
Te6edf3style Tff7b72= Te6edf3PaintTb4b4b4.Te6edf3StyleTb4b4b4.Te6edf3STROKE
Te6edf3strokeJoin Tff7b72= Te6edf3PaintTb4b4b4.Te6edf3JoinTb4b4b4.Te6edf3ROUND
Te6edf3strokeCap Tff7b72= Te6edf3PaintTb4b4b4.Te6edf3CapTb4b4b4.Te6edf3ROUND
Te6edf3pathEffect Tff7b72= Te6edf3DashPathEffectTb4b4b4(Te6edf3floatArrayOfTb4b4b4(T79c0ff8T79c0ff0fTb4b4b4, T79c0ff6T79c0ff0fTb4b4b4)Tb4b4b4, T79c0ff0fTb4b4b4)
Tb4b4b4}
Te6edf3outlinePaintListsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3MonochromaticPaintListTb4b4b4(Te6edf3borderPaintTb4b4b4)Tb4b4b4)
Tff7b72val Te6edf3fillPaint Tff7b72=
Te6edf3PaintTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3apply Tb4b4b4{
Te6edf3color Tff7b72= Te6edf3ColorTb4b4b4.Te6edf3WHITE
Te6edf3isAntiAlias Tff7b72= Tff7b72true
Te6edf3strokeWidth Tff7b72= Te6edf3withTb4b4b4(Te6edf3densityTb4b4b4) Tb4b4b4{ T79c0ff6.Te6edf3dpTb4b4b4.Te6edf3toPxTb4b4b4(Tb4b4b4) Tb4b4b4}
Te6edf3style Tff7b72= Te6edf3PaintTb4b4b4.Te6edf3StyleTb4b4b4.Te6edf3FILL_AND_STROKE
Te6edf3strokeJoin Tff7b72= Te6edf3PaintTb4b4b4.Te6edf3JoinTb4b4b4.Te6edf3ROUND
Te6edf3strokeCap Tff7b72= Te6edf3PaintTb4b4b4.Te6edf3CapTb4b4b4.Te6edf3ROUND
Te6edf3pathEffect Tff7b72= Te6edf3DashPathEffectTb4b4b4(Te6edf3floatArrayOfTb4b4b4(T79c0ff8T79c0ff0fTb4b4b4, T79c0ff6T79c0ff0fTb4b4b4)Tb4b4b4, T79c0ff0fTb4b4b4)
Tb4b4b4}
Te6edf3outlinePaintListsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3MonochromaticPaintListTb4b4b4(Te6edf3fillPaintTb4b4b4)Tb4b4b4)
Te6edf3setPointsTb4b4b4(Te6edf3geoPointsTb4b4b4)
Te6edf3setOnClickListener Tb4b4b4{ Te6edf3_Tb4b4b4, Te6edf3_Tb4b4b4, Te6edf3_ Tff7b72-Tff7b72>
Te6edf3onClickTb4b4b4(Tb4b4b4)
Tff7b72true
Tb4b4b4}
Tb4b4b4}
Te6edf3overlaysTb4b4b4.Te6edf3addTb4b4b4(Te6edf3polylineTb4b4b4)

Tff7b72return Te6edf3polyline
Tb4b4b4}

Tff7b72fun Te6edf3MapViewTb4b4b4.Td2a8ffaddPositionMarkersTb4b4b4(Te6edf3positionsTb4b4b4: Te6edf3ListTff7b72<Te6edf3PositionTff7b72>Tb4b4b4, Te6edf3onClickTb4b4b4: Tb4b4b4(Tffa657IntTb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4)Tb4b4b4: Te6edf3ListTff7b72<Te6edf3MarkerTff7b72> Tb4b4b4{
Tff7b72val Te6edf3navIcon Tff7b72= Te6edf3ContextCompatTb4b4b4.Te6edf3getDrawableTb4b4b4(Te6edf3contextTb4b4b4, Te6edf3RTb4b4b4.Te6edf3drawableTb4b4b4.Te6edf3ic_map_navigationTb4b4b4)
Tff7b72val Te6edf3markers Tff7b72=
Te6edf3positionsTb4b4b4.Te6edf3map Tb4b4b4{ Te6edf3pos Tff7b72-Tff7b72>
Te6edf3MarkerTb4b4b4(Tff7b72thisTb4b4b4)Tb4b4b4.Te6edf3apply Tb4b4b4{
Te6edf3icon Tff7b72= Te6edf3navIcon
Te6edf3rotation Tff7b72= Tb4b4b4(Tb4b4b4(Te6edf3posTb4b4b4.Te6edf3ground_track Tff7b72?: T79c0ff0Tb4b4b4) Tff7b72* T79c0ff1e-5Tb4b4b4)Tb4b4b4.Te6edf3toFloatTb4b4b4(Tb4b4b4)
Te6edf3setAnchorTb4b4b4(Te6edf3MarkerTb4b4b4.Te6edf3ANCHOR_CENTERTb4b4b4, Te6edf3MarkerTb4b4b4.Te6edf3ANCHOR_CENTERTb4b4b4)
Te6edf3position Tff7b72= Te6edf3GeoPointTb4b4b4(Tb4b4b4(Te6edf3posTb4b4b4.Te6edf3latitude_i Tff7b72?: T79c0ff0Tb4b4b4) Tff7b72* T79c0ff1e-7Tb4b4b4, Tb4b4b4(Te6edf3posTb4b4b4.Te6edf3longitude_i Tff7b72?: T79c0ff0Tb4b4b4) Tff7b72* T79c0ff1e-7Tb4b4b4)
Te6edf3setOnMarkerClickListener Tb4b4b4{ Te6edf3_Tb4b4b4, Te6edf3_ Tff7b72-Tff7b72>
Te6edf3onClickTb4b4b4(Te6edf3posTb4b4b4.Te6edf3timeTb4b4b4)
Tff7b72true
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Te6edf3overlaysTb4b4b4.Te6edf3addAllTb4b4b4(Te6edf3markersTb4b4b4)

Tff7b72return Te6edf3markers
Tb4b4b4}

Served by rngit 1.5.0 - Generated in 0.07s